import $ from  'jquery'


class MUtil {
	request(param) {
		return new Promise((resolve,reject) => {
			$.ajax({
				type: 		param.type 			|| 'get',
				url: 			`/api/${param.url}` 			|| '',
				dataType: param.dataType  || 'json',
				data: 		param.data 			|| null,
				success:(res) => {
					console.log(res);
					if(0 === res.status) {
						typeof resolve === 'function' && resolve(res.data, res.msg);
					}
					// 没有登录状态，需要登录
					else if(10 === res.status) {
						this.doLogin();
					} else {
						typeof reject === 'function' && reject(res.msg || res.data);
					}
 				},
				error: (err) => {
					console.log(err);
					typeof reject === 'function' && reject(err.statusText);
				}
			})
		})
	}
	// 跳转登录
	doLogin() {
		window.location.href = `/login?redirect=${encodeURIComponent(window.location.pathname)}`
	}
	// 获取url参数
	getUrlParam(name) {
		// xxx.com?param=123&param=456
		let queryString = window.location.search.split('?')[1] || '',
				reg = new RegExp(`"(^|&)"${name}=([^&]*)(&|$)`),
				result = queryString.match(reg);
		return result? decodeURIComponent(result[2]) : null;
	}
	successTips(successMsg) {
		alert(successMsg || '好像啥也没有')
	}
	// 错误提示
	errorTips(errMsg) {
		alert(errMsg || '好像没传为啥')
	}
	// 存数据
	setStorage(name, data) {
		let dataType = typeof data;
		if(dataType === 'object') {
			window.localStorage.setItem(name, JSON.stringify(data))
		}
		// 基础类型
		else if(['number','string','boolean'].indexOf(dataType) >= 0) {
			window.localStorage.setItem(name, data)
		} else {
			alert('该类型不能用于本地存储')
		}
	}
	// 取数据
	getStorage(name) {
		let data = window.localStorage.getItem(name);
		if(data) {
			return JSON.parse(data)
		}
		else {
			return ''
		}
	}
	// 删除本地存储
	removeStorage(name) {
		window.localStorage.removeItem(name)
	}
}

export default MUtil
